<?php

session_start();

include_once "metier/connexion.php";

redirigerSiNonConnecte();

include_once "metier/XSRF.php";





/******GESTION XSRF******/
//Si un token est passé en paramètre
if(isset($_POST["token"])) {
	//Si le token est valide
	if(!validerToken("REAUTHENTIFICATION", $_POST["token"])) {
		header("Location: index.php?e=token");
		exit;
	}
}
else {
	header("Location: index.php?e=token");
	exit;
}
/******FIN XSRF******/




if(isset($_SESSION["courriel"]) && isset($_POST["mdpchiffre"]) && isset($_POST["id"]) && isset($_POST["page"])) {
	
	$bd = new PDO("mysql:host=localhost;dbname=viagra", "root", "root");
	
	//Le défi calculé par le client
	$deficlient = $_POST["mdpchiffre"];
	
	$requete = $bd->query("SELECT id, mdp FROM utilisateur WHERE courriel=".$bd->quote($_SESSION["courriel"]));
	
	// si le resultat est valide
	if($resultat = $requete->fetch(PDO::FETCH_OBJ)) {
		
		//Calculer le défi du côté serveur
		$defiserveur = hash("sha512", $resultat->mdp.$_SESSION["REAUTHENTIFICATION_DEFI"]);
		unset($_SESSION["REAUTHENTIFICATION_DEFI"]);
		
		//Fermeture de la base de données
		$bd = null;
		
		//Si les défis calculés ne sont pas les mêmes, on redirige l'utilisateur vers la page reauthentication.php
		if($deficlient != $defiserveur) {
			header("Location: reauthentication.php?e=mauvaismotdepasse&id=".$_POST["id"]."&page=".$_POST["page"]);
			exit;
		}
		
		switch($_POST["page"]) {
			case "modifAnnonce":
				header("Location: modifAnnonce.php?id=".$_POST["id"]."&token=".genererToken("REAUTHENTIFICATION_MODIF_ANNONCE", 1));
				break;
			case "supprAnnonce":
				header("Location: supprAnnonce.php?id=".$_POST["id"]."&token=".genererToken("REAUTHENTIFICATION_SUPPR_ANNONCE", 1));
				break;
		}
		exit;
	}
	//Si l'utilisateur n'existe pas (ne doit pas arriver), on le déconnecte
	else {
		$bd = null;
		header("Location: deconnexion.php");
		exit;
	}
}

?>